home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
011
/
brutil.arc
/
COLOR.ASM
< prev
next >
Wrap
Assembly Source File
|
1987-08-21
|
2KB
|
118 lines
tITLE Color Sets screen color like BASIC COLOR statement
;W. A. Scrivens July, 1985
;Bruce Noblick January, 1987
CSEG SEGMENT
ASSUME CS:CSEG,DS:CSEG,ES:CSEG
ORG 100H
COLOR:
MOV AH,CS:80H
OR AH,AH
JNZ FOREGND
MOV DX,OFFSET TEXT
MOV AH,9
INT 21H
RET
FOREGND: MOV SI,81H
CALL GETVAL
JC NOMORE
CMP DX,32
CMP DX,32
JNC BADCOL
MOV DH,DL
AND DH,10H
AND DL,0FH
MOV CL,3
ROL DH,CL
OR DL,DH
MOV FGCOL,DL
CALL GETVAL
JC NOMORE
CMP DX,8
JNC BADCOL
MOV CL,4 ;put in high order nibble
ROL DL,CL
OR DL,FGCOL ;form argument for INT 10H
MOV FGCOL,DL
CALL GETVAL
JC NOMORE
CMP DX,16
JNC BADCOL
MOV BOCOL,DL
JMP SHORT NOMORE
BADCOL: MOV DX,OFFSET COLMSG
MOV AH,9
INT 21H
RET
NOMORE: MOV AH,15
INT 10H
MOV AH,3
INT 10H
MOV CH,DH
MOV CL,0
MOV BH,FGCOL
MOV AX,600H ;scroll up full window
MOV DX,184FH ;lower right @ 24,79
INT 10H
BORDER: MOV AL,BOCOL ;get border color
MOV DX,3D9H ;console output
OUT DX,AL
RET
GETVAL: SUB DX,DX
SUB AH,AH
GV1: LODSB
CMP AL,13
STC
JZ GVPX
CMP AL,' '
JZ GV1
GV2: SUB AL,'0'
CMP AL,10
JNC GVEX
MOV CX,DX
ADD DX,DX
ADD DX,DX
ADD DX,CX
ADD DX,DX
ADD DX,AX
LODSB
CMP AL,13
JZ GVPX
CMP AL,' '
JNZ GV2
GVX: RET
GVPX: PUSHF
DEC SI
POPF
RET
GVEX: CLC
MOV DX,-1
RET
COLMSG DB 'Bad parameter$'
FGCOL DB 0
BOCOL DB 0
CR EQU 0DH
LF EQU 0AH
TEXT: DB CR,LF
DB 'Syntax: COLOR fg[ bg[ bo]]',CR,LF,LF
DB 'Where: fg (Foreground) (0-31)',CR,LF
DB ' bg (Background) (0-7)',CR,LF
DB ' bo (Border) (0-15)',CR,LF,LF
DB 'Color Definitions:',CR,LF,LF
DB ' 0 8 16 24 Black',CR,LF
DB ' 1 9 17 25 Blue',CR,LF
DB ' 2 10 18 26 Green',CR,LF
DB ' 3 11 19 27 Cyan',CR,LF
DB ' 4 12 20 28 Red',CR,LF
DB ' 5 13 21 29 Magenta',CR,LF
DB ' 6 14 22 30 Yellow',CR,LF
DB ' 7 15 23 31 White',CR,LF,LF
DB ' 8-15 are high intensity colors',CR,LF
DB ' 16-23 are blinking colors',CR,LF
DB ' 24-31 are high intensity blinking colors'
DB CR,LF,'$'
CSEG ENDS
END COLOR
16-23 are blinking colors